home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware Games Galore!
/
Shareware Games Galore!.iso
/
arcade
/
pcgolf
/
aperform.asc
< prev
next >
Wrap
Text File
|
1985-01-26
|
19KB
|
422 lines
10000 '*************************************************************
10010 '***** PC-GOLF THE GOLFER's PROGRAM PC-GOLF *****
10020 '***** Version 1.4 (C) 1983,1984,1985 Ed Chandler *****
10030 '*************************************************************
10040 '+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
10050 ' 5. GET the golfer's score sheet
10060 '+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
10070 CLS:PRINT MNU5$
10072 IF ROS=0 THEN 10080
10075 DEF SEG=&H40:I%=PEEK(&H17):I%=I% OR 32:POKE &H17,I% 'num lock on
10080 IF PACT>0 THEN 10120
10090 PRINT:PRINT"There are no player's scores yet, because"
10100 PRINT"no rounds have been tallied."
10110 GOSUB 580:GOTO 530 'back to main
10120 PRINT:PRINT SPC(7);"PC-GOLF's Score Sheets":PRINT
10130 PRINT SPC(3)"1. Select a player."
10140 PRINT SPC(3);MNURT$:PRINT
10150 M1$="key":M2$="(1 or M) ":GOSUB 570
10160 IF KB=1 THEN 10190
10170 IF KB$="M" OR KB$="m" THEN 530 'back to main
10180 GOSUB 610:GOTO 10070
10190 CLS:PRINT MNU5$:X=1:GOSUB 550 'show roster
10200 IF PR=0 THEN GOSUB 590:RETURN
10210 PRINT:LINE INPUT;"ENTER the line number of the player you want. ";KB$
10220 KB=VAL(KB$):IF KB>0 AND KB<=PMAX AND TMP(KB)=KB THEN 10250
10230 GOSUB 611:GOTO 10190
10240 '+++++ PDIR.DAT PLAYER.DAT GCDIR.DAT +++++
10250 GOSUB 660:GET #4,KB:GOSUB 670:GET #5,KB
10260 PRN=VAL(E4$):GOSUB 650:GOSUB 655:GET #2,PRN:GET #3,PRN:CLOSE #2,#3,#4,#5
10270 E5=CVI(E5$):J5=CVI(J5$):SSW=0 'score & putt counts,set up flag
10280 '+++++ all data is in buffers #2,#3,#4,#5 +++++
10290 IF A5$="V" THEN 10320 'ok data is valid
10300 PRINT:PRINT"There are no putts or scores in the data bank for ";B4$;
10310 GOSUB 580:GOTO 10070
10320 CLS:PRINT SPC(7);"PC-GOLF's Score Sheets":PRINT
10330 MNU1$="1. Review the scoring tables and bar charts.":PRINT SPC(3);MNU1$
10340 MNU2$="2. Review the putting tables and bar charts.":PRINT SPC(3);MNU2$
10350 PRINT SPC(3);MNURT$:PRINT
10360 M1$="key":M2$="(1,2 or M) ":GOSUB 570:TSW=KB
10370 IF KB=1 THEN 10410
10380 IF KB=2 THEN 10440
10390 IF KB$="M" OR KB$="m" THEN 10070
10400 GOSUB 610:GOTO 10320
10410 IF E5<>0 THEN 10480
10420 PRINT:PRINT"There are no scores in the data bank for ";B4$
10430 GOSUB 580:GOTO 10320
10440 IF J5<>0 THEN 10480
10450 PRINT:PRINT"There are no putts in the data bank for ";B4$
10460 GOSUB 580:GOTO 10320
10470 '+++++ put scores in arrays +++++
10480 IF SSW =1 THEN 11020 'tra if set up already
10490 N=1:FOR I=1 TO 18
10500 PS(I)=CVI(MID$(G5$,N,2)) 'gross scores
10510 IF E5<>0 THEN TAVG!(I)=PS(I)/E5 'avg gr scores
10520 IF F4$="m" THEN CP(I)=VAL(MID$(E2$,I,1)) 'course pars
10530 IF F4$="f" THEN CP(I)=VAL(MID$(H2$,I,1)) 'course pars
10540 PM!(I)=TAVG!(I)-CP(I) 'plus/minus avg gr scores
10550 TMP(I)=VAL(MID$(G2$,N,2)) 'hole hcaps
10560 GS(I)=I 'hole #'s & index for hole #'s
10570 N=N+2:NEXT I
10580 '+++++ AVG SCORES +++++
10590 IF E5=0 THEN 10650
10600 FOR I=1 TO 18:TX(I)=PS(I):TX!(I)=TAVG!(I):NEXT I
10610 T=E5:T3!=3:T4!=4:T5!=5:M1$=" AVERAGE SCORES ":M2$="Avg. score "
10620 GOSUB 11690 'avg scores display
10630 '+++++
10640 'sort for hole handicaps
10650 PRINT:PRINT"Calculating - Standby -":LOCATE CSRLIN-2,POS(0),0
10660 FOR I=1 TO 18:IX(I)=I:KEE(I)=TMP(I):NEXT 'set key for h'caps
10670 GOSUB 11610:FOR I=1 TO 18:IK(I)=IX(I):NEXT 'save HCAP index
10680 GOSUB 580
10690 '+++++ put putts in arrays +++++
10700 IF J5=0 THEN 10900 '# putts
10710 N=1:FOR I=1 TO 18
10720 PSP(I)=CVI(MID$(L5$,N,2)) 'actual putts
10730 PAVG!(I)=PSP(I)/J5 'avg gr putts
10740 PMP!(I)=PAVG!(I)-2 'plus/minus avg gr putts
10750 IF F4$="m" THEN CP(I)=VAL(MID$(E2$,I,1)) 'course pars
10760 IF F4$="f" THEN CP(I)=VAL(MID$(H2$,I,1)) 'course pars
10770 TMP(I)=VAL(MID$(G2$,N,2)) 'hole hcaps
10780 GS(I)=I 'hole #'s & index for hole #'s
10790 N=N+2:NEXT I
10800 '+++++ AVERAGE PUTTS +++++
10810 FOR I=1 TO 18:TX(I)=PSP(I):TX!(I)=PAVG!(I):NEXT I
10820 T=J5:T3!=PR!:T4!=T3!:T5!=T3!:M1$=" AVERAGE PUTTS ":M2$="Avg. putts "
10830 GOSUB 11690 'avg putts display
10840 'sort for plus/minus putts
10850 PRINT:PRINT"Calculating - Standby -":LOCATE CSRLIN-2,POS(0),0
10860 FOR I=1 TO 18:IX(I)=I:KEE!(I)=INT(PMP!(I)*100)*100+I:NEXT
10870 GOSUB 11650:FOR I=1 TO 18:IY(I)=IX(I):NEXT 'save +/- index
10880 GOSUB 580
10890 '+++++ potpourri +++++
10900 GOSUB 12150 'potpourri
10910 '+++++
10920 IF E5=0 THEN 11000
10930 'sort for plus/minus scores
10940 PRINT:PRINT"Calculating - Standby -":LOCATE CSRLIN-2,POS(0),0
10950 FOR I=1 TO 18:IX(I)=I:KEE!(I)=INT(PM!(I)*100)*100+I:NEXT
10960 GOSUB 11650:FOR I=1 TO 18:DD(I)=0:IJ(I)=IX(I):NEXT 'save +/- index
10970 H=VAL(D4$):DH!=0:FOR I=1 TO 18:DH!=DH!+PM!(IJ(I))
10980 IF DH!>H THEN DD(IJ(I))=I 'set for double diamond flag
10990 NEXT I
11000 GOSUB 580:SSW=1 'flag set up done
11010 '+++++
11020 IF TSW=2 THEN 11320 'scores or putts
11030 CLS:PRINT MNU1$:PRINT:PRINT SPC(8)"PC-GOLF's Score Sheets":PRINT
11040 PRINT"1. Hole Handicap sequence table"
11050 PRINT"2. Plus/Minus sequence table"
11060 PRINT"3. Average Scores bar chart"
11070 PRINT"4. Hole Handicap bar chart"
11080 PRINT"5. Low-to-High Score bar chart"
11082 PRINT"6. Scoring Trend chart"
11090 PRINT"7. Average Scores"
11100 PRINT"8. Potpourri"
11110 PRINT"9. Personal Best"
11120 PRINT MNURT$:PRINT
11130 M1$="key":M2$="(1,2,3,4,5,6,7,8,9 or M) ":GOSUB 570
11140 M1$="Avg.score":FOR I=1 TO 18:KEE!(I)=TAVG!(I):TX!(I)=PM!(I):NEXT I
11150 IF KB=1 THEN GOSUB 12430:GOTO 11020
11160 IF KB=2 THEN GOSUB 12550:GOTO 11020
11170 M1$="Average Score":FOR I=1 TO 18:TX!(I)=PM!(I):IX(I)=GS(I):NEXT I
11180 T=E5
11190 IF KB=3 THEN PTYP$="HS":GOSUB 12780:GOTO 11020
11200 M1$="Hole Handicap":FOR I=1 TO 18:IX(I)=IK(I):NEXT I
11210 IF KB=4 THEN PTYP$="HC":GOSUB 12780:GOTO 11020
11220 M1$="Low-to-High Score":FOR I=1 TO 18:IX(I)=IJ(I):NEXT I
11230 IF KB=5 THEN PTYP$="PM":GOSUB 12780:GOTO 11020
11232 IF KB<>6 THEN 11240
11239 T=1:M1$="Scoring":GOSUB 13640:GOTO 11020
11240 FOR I=1 TO 18:TX(I)=PS(I):TX!(I)=TAVG!(I):NEXT I
11250 T=E5:T3!=3:T4!=4:T5!=5:M1$=" AVERAGE SCORES ":M2$="Avg. score "
11260 IF KB=7 THEN GOSUB 11690:GOSUB 590:GOTO 11020
11270 IF KB=8 THEN GOSUB 12150:GOSUB 590:GOTO 11020
11280 IF KB=9 THEN GOSUB 13240:GOSUB 590:GOTO 11020
11290 IF KB$="M" OR KB$="m" THEN 10320
11300 GOSUB 610:GOTO 11020
11310 '+++++
11320 CLS:PRINT MNU2$:PRINT:PRINT SPC(8)"PC-GOLF's Score Sheets":PRINT
11330 PRINT"1. Hole Handicap sequence table"
11340 PRINT"2. Plus/Minus sequence table"
11350 PRINT"3. Average Putts bar chart"
11360 PRINT"4. Hole Handicap bar chart"
11370 PRINT"5. Low-to-High Putts bar chart"
11372 PRINT"6. Putting Trend chart"
11380 PRINT"7. Average Putts"
11390 PRINT"8. Potpourri"
11400 PRINT"9. Personal Best"
11410 PRINT MNURT$:PRINT
11420 M1$="key":M2$="(1,2,3,4,5,6,7,8,9 or M) ":GOSUB 570
11430 M1$="Avg.putt ":FOR I=1 TO 18:KEE!(I)=PAVG!(I):TX!(I)=PMP!(I):NEXT I
11440 IF KB=1 THEN GOSUB 12430:GOTO 11020
11450 IF KB=2 THEN GOSUB 12550:GOTO 11020
11460 M1$="Average Putts":FOR I=1 TO 18:TX!(I)=PMP!(I):IX(I)=GS(I):NEXT I
11470 T=J5
11480 IF KB=3 THEN PTYP$="HP":GOSUB 12780:GOTO 11020
11490 M1$="Hole Handicap":FOR I=1 TO 18:IX(I)=IK(I):NEXT I
11500 IF KB=4 THEN PTYP$="HC":GOSUB 12780:GOTO 11020
11510 M1$="Low-to-High Putts":FOR I=1 TO 18:IX(I)=IY(I):NEXT I
11520 IF KB=5 THEN PTYP$="PM":GOSUB 12780:GOTO 11020
11522 IF KB<>6 THEN 11530
11526 T=2:M1$="Putting":GOSUB 13640:GOTO 11020
11530 FOR I=1 TO 18:TX(I)=PSP(I):TX!(I)=PAVG!(I):NEXT I
11540 T=J5:T3!=PR!:T4!=T3!:T5!=T3!:M1$=" AVERAGE PUTTS ":M2$="Avg. putts "
11550 IF KB=7 THEN GOSUB 11690:GOSUB 590:GOTO 11020
11560 IF KB=8 THEN GOSUB 12150:GOSUB 590:GOTO 11020
11570 IF KB=9 THEN GOSUB 13240:GOSUB 590:GOTO 11020
11580 IF KB$="M" OR KB$="m" THEN 10320
11590 GOSUB 610:GOTO 11320
11600 '+++++ sort sub +++++
11610 FOR I=1 TO 17:FOR J=I+1 TO 18:IF KEE(I)<=KEE(J) THEN 11630
11620 T=KEE(I):KEE(I)=KEE(J):KEE(J)=T:T=IX(I):IX(I)=IX(J):IX(J)=T
11630 NEXT J:NEXT I:RETURN
11640 '+++++ sort sub +++++
11650 FOR I=1 TO 17:FOR J=I+1 TO 18:IF KEE!(I)<=KEE!(J) THEN 11670
11660 T!=KEE!(I):KEE!(I)=KEE!(J):KEE!(J)=T!:T=IX(I):IX(I)=IX(J):IX(J)=T
11670 NEXT J:NEXT I:RETURN
11680 '+++++ performance for par 3,4,5's +++++
11690 P3=0:P4=0:P5=0:P3ACT=0:P4ACT=0:P5ACT=0
11700 FOR I=1 TO 18
11710 IF CP(I)=3 THEN P3=P3+1:P3ACT=P3ACT+TX(I) 'sum of actuals
11720 IF CP(I)=4 THEN P4=P4+1:P4ACT=P4ACT+TX(I)
11730 IF CP(I)=5 THEN P5=P5+1:P5ACT=P5ACT+TX(I)
11740 NEXT
11750 '+++++ t=# rounds tallied
11760 P3AVG!=0:IF P3<>0 THEN P3AVG!=P3ACT/(P3*T)
11770 P4AVG!=0:IF P4<>0 THEN P4AVG!=P4ACT/(P4*T)
11780 P5AVG!=0:IF P5<>0 THEN P5AVG!=P5ACT/(P5*T)
11790 P3DEL!=0:IF P3<>0 THEN P3DEL!=P3AVG!-T3!
11800 P4DEL!=0:IF P4<>0 THEN P4DEL!=P4AVG!-T4!
11810 P5DEL!=0:IF P5<>0 THEN P5DEL!=P5AVG!-T5!
11820 '+++++ AVERAGE SCORES +++++
11830 CLS:PRINT"Scoring Table for ";B4$:PRINT"Home Course - ";B2$
11840 PRINT"with ";T;" rounds tallied." '# rounds
11850 PRINT SPC(30);:COLOR 0,15,0:PRINT M1$;:COLOR 7,0,0
11860 PRINT SPC(5);GREG$:PRINT
11870 COLOR 0,15,0:PRINT" Front Nine ";:COLOR 7,0,0:PRINT SPC(1);
11880 FOR I=1 TO 9:PRINT USING"## ";I;
11890 IF I=3 OR I=6 THEN PRINT SPC(4)
11900 NEXT:PRINT
11910 PRINT"PAR";SPC(10);:FOR I=1 TO 9:PRINT USING "## ";CP(I);
11920 IF I=3 OR I=6 THEN PRINT SPC(4);
11930 NEXT:PRINT
11940 PRINT M2$;:FOR I=1 TO 9:PRINT USING "#.# ";TX!(I);
11950 IF I=3 OR I=6 THEN PRINT SPC(4)
11960 NEXT:PRINT:PRINT:PRINT
11970 COLOR 0,15,0:PRINT" Back Nine ";:COLOR 7,0,0:PRINT SPC(1);
11980 FOR I=10 TO 18:PRINT USING"## ";I;
11990 IF I=12 OR I=15 THEN PRINT SPC(4)
12000 NEXT:PRINT
12010 PRINT"PAR";SPC(10);:FOR I=10 TO 18:PRINT USING "## ";CP(I);
12020 IF I=12 OR I=15 THEN PRINT SPC(4);
12030 NEXT:PRINT
12040 PRINT M2$;:FOR I=10 TO 18:PRINT USING "#.# ";TX!(I);
12050 IF I=12 OR I=15 THEN PRINT SPC(4)
12060 NEXT:PRINT:PRINT:PRINT
12070 COLOR 0,15,0:PRINT" PAR ";:COLOR 7,0,0:PRINT SPC(12);
12080 PRINT"par 3's";SPC(12);"par 4's";SPC(12);"par 5's"
12090 PRINT M2$;SPC(7)
12100 PRINT USING "#.# ";P3AVG!;P4AVG!;P5AVG!
12110 PRINT "Plus/Minus";SPC(8)
12120 PRINT USING "+#.# ";P3DEL!;P4DEL!;P5DEL!
12130 RETURN
12140 '+++++ POTPOURRI +++++
12150 CLS:PRINT"Scoring Table for ";B4$:PRINT"Home Course - ";B2$
12160 T=E5:IF T=0 THEN T=J5
12170 PRINT '"with ";T;" rounds tallied.":PRINT
12180 PRINT SPC(12):COLOR 0,15,0:PRINT" POTPOURRI ";:COLOR 7,0,0
12190 PRINT SPC(10)GREG$:PRINT
12200 IF E5=0 THEN 12310
12210 T=0:T!=0:FOR I=1 TO 40 STEP 2:J=CVI(MID$(F5$,I,2)):T!=T!+J
12220 IF J<>0 THEN T=T+1
12230 NEXT I
12240 PRINT"Your gross scores for the last ";T;" rounds.":PRINT
12250 X=0:FOR I=41-2*T TO 39 STEP 2:PRINT USING" ###";CVI(MID$(F5$,I,2));
12260 X=X+1:IF X=10 AND X<E5 THEN PRINT
12270 NEXT I:PRINT:PRINT
12280 PRINT USING" the average gross score is ###.#";T!/T
12290 PRINT SPC(7)"the lowest gross score to date is ";CVI(I5$):PRINT
12300 '+++++
12310 IF J5=0 THEN 12410
12320 T=0:T!=0:FOR I=1 TO 40 STEP 2:J=CVI(MID$(K5$,I,2)):T!=T!+J
12330 IF J<>0 THEN T=T+1
12340 NEXT I
12350 PRINT"Your putting scores for the last ";T;" rounds.":PRINT
12360 X=0:FOR I=41-2*T TO 39 STEP 2:PRINT USING" ###";CVI(MID$(K5$,I,2));
12370 X=X+1:IF X=10 AND X<J5 THEN PRINT
12380 NEXT I:PRINT:PRINT
12390 PRINT USING" the average putting score is ##.#";T!/T
12400 PRINT SPC(5)"the lowest putting score to date is ";CVI(N5$)
12410 RETURN
12420 '+++++ show avg scores in handicap sort +++++
12430 CLS:PRINT SPC(3):COLOR 0,15,0:PRINT " Handicap Sequence ";:COLOR 7,0,0
12440 PRINT SPC(3);B4$:PRINT SPC(6);GREG$;SPC(11);B2$
12450 PRINT"PAR";SPC(4);"Hole #";SPC(3);
12460 COLOR 0,15,0:PRINT" H,cap ";:COLOR 7,0,0
12470 PRINT SPC(2);M1$;SPC(5);"+/-"
12480 FOR I=1 TO 18
12490 PRINT USING"## ";CP(IK(I));GS(IK(I));TMP(IK(I));
12500 PRINT USING"#.## ";KEE!(IK(I));
12510 PRINT USING"+#.##";TX!(IK(I))
12520 NEXT
12530 GOSUB 590:RETURN
12540 '+++++ show avg scores in +/- sort +++++
12550 CLS:PRINT SPC(3):COLOR 0,15,0:PRINT " Plus/Minus Sequence ";:COLOR 7,0,0
12560 PRINT SPC(1);B4$:PRINT SPC(6);GREG$;SPC(11);B2$
12570 PRINT"PAR";SPC(4);"Hole #";SPC(4);
12580 PRINT"H,cap";SPC(3);M1$;SPC(4)
12590 COLOR 0,15,0:PRINT" +/- ":COLOR 7,0,0
12600 IF TSW=2 THEN 12660
12610 FOR I=1 TO 18
12620 PRINT USING"## ";CP(IJ(I));GS(IJ(I));TMP(IJ(I));
12630 PRINT USING"#.## ";KEE!(IJ(I));
12640 PRINT USING"+#.##";TX!(IJ(I))
12650 NEXT:GOTO 12710
12660 FOR I=1 TO 18
12670 PRINT USING"## ";CP(IY(I));GS(IY(I));TMP(IY(I));
12680 PRINT USING"#.## ";KEE!(IY(I));
12690 PRINT USING"+#.##";TX!(IY(I))
12700 NEXT
12710 GOSUB 590:RETURN
12720 '+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
12730 'PLOT Subroutine
12740 'ENTER ptyp$=PM,HC,or [HS or HP] - sort is +/-, Hcap, or Hole #
12750 ' M1$=title, tx!(i)=PM!(i) or PMP!(i)
12760 ' ix(i)=index
12770 '+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
12780 WIDTH 80:SCREEN 2
12790 LOCATE 1,16:PRINT M1$;
12800 PRINT" Bar Chart for ";B4$
12810 PRINT SPC(18)"With ";T;" rounds tallied. ";GREG$
12812 PRINT SPC(22) B2$
12820 H0=56:H1=H0:H2=H1:HINC=16 'init values
12830 V0=159:V0!=159:VINC!=32
12840 D$=CHR$(46)+" "+CHR$(46)+" ":F$=" ":G$=CHR$(124):V!=-1
12850 SCREEN 2
12860 '+++++ print horiz lines and +/- #'s
12870 FOR I=24 TO 4 STEP -4
12880 LOCATE I,4:PRINT USING"+# ";V!;
12890 FOR J=1 TO 18
12900 IF V!<0 THEN IF V!<TX!(IX(J)) THEN PRINT D$; ELSE PRINT F$;
12902 IF V!=0 THEN PRINT "____";
12910 IF V!>0 THEN IF V!>TX!(IX(J)) THEN PRINT D$; ELSE PRINT F$;
12920 NEXT J:V!=V!+1:NEXT I
12930 '+++++ print HOLE # below zero line
12940 LOCATE 21,8
12950 FOR I=1 TO 18:LOCATE 21,POS(0):Y=POS(0)
12960 IF PTYP$="HC" THEN PRINT USING"## ";GS(IX(I)); 'hole hcaps
12970 IF PTYP$<>"HC" THEN PRINT USING"## ";GS(IX(I)); 'hole #s
12980 IF PTYP$="HS" AND DD(I)<>0 THEN LOCATE 23,Y:PRINT CHR$(4);CHR$(4);" ";
12990 NEXT I
13000 ' *** character fill bars on chart
13010 H1=8:HAF$="..":FUL$="::":BAR$=FUL$:BHAF$="`'"
13020 FOR I=1 TO 18:NBRCV=ABS(INT(TX!(IX(I))*4)):K=0
13030 SLIN=INT(20-(TX!(IX(I))*4)):IF SLIN>20 THEN SLIN=20
13040 T4!=TX!(IX(I)):T5!=INT(TX!(IX(I))/.25)
13050 IF T4!<>.25*T5! THEN BAR$=HAF$:NBRCV=NBRCV+1:K=1
13060 IF T4!<0 AND BAR$=HAF$ THEN BAR$=FUL$:NBRCV=NBRCV-1
13070 IF T4!<0 THEN BAR$=FUL$
13080 FOR J=SLIN+1 TO SLIN+NBRCV
13082 JJ=J: IF JJ>24 THEN JJ=24
13090 LOCATE JJ,H1:PRINT BAR$;:BAR$=FUL$:NEXT J:IF T4!>=0 THEN 13110
13100 IF K=1 THEN LOCATE CSRLIN,H1:PRINT BHAF$;
13102 LOCATE 20,H1-1:PRINT GS(IX(I))
13110 H1=H1+4:NEXT I
13160 FOR I=5 TO 23:LOCATE I,7:PRINT G$:LOCATE I,79:PRINT G$:NEXT
13170 LOCATE 25,16,0
13180 PRINT"PRESS the space bar to continue.";
13190 KB$=INKEY$:IF KB$<>"" THEN 13190
13200 KB$=INKEY$:IF KB$<>" " THEN 13200
13210 LOCATE CSRLIN,POS(0),1
13220 SCREEN 0:RETURN
13230 '+++++ PERSONAL BEST +++++
13240 CLS:KB$=B4$:GOSUB 700:PRINT SPC(12):COLOR 0,15,0
13242 PRINT" - PERSONAL BEST - ";KB$;" ":COLOR 7,0,0
13250 LOCATE 1,67:PRINT GREG$:PRINT
13260 CF=0:CB=0:AF=0:AB=0:PF=0:PB=0
13270 FOR I=1 TO 9:CF=CF+CP(I):CB=CB+CP(I+9):NEXT I
13280 FOR I=1 TO 18:TX(I)=VAL(MID$(H5$,I,1)):IX(I)=VAL(MID$(M5$,I,1)):NEXT I
13290 FOR I=1 TO 9:AF=AF+TX(I):AB=AB+TX(I+9):PF=PF+IX(I):PB=PB+IX(I+9):NEXT I
13300 IF E5<>0 THEN YT=1
13310 IF J5<>0 THEN YT=2
13320 IF E5<>0 AND J5<>0 THEN YT=3
13330 PRINT "HOLE #";SPC(4);
13340 FOR I=1 TO 9 STEP 3:PRINT USING "###";I;I+1;I+2;:PRINT SPC(1):NEXT I
13350 PRINT "Front";
13360 FOR I=10 TO 18 STEP 3:PRINT USING "###";I;I+1;I+2;:PRINT SPC(1):NEXT I
13370 PRINT "Back":PRINT SPC(41);"nine";SPC(30);"nine":PRINT "par";SPC(8);
13380 FOR I=1 TO 9 STEP 3:PRINT CP(I);CP(I+1);CP(I+2);SPC(1):NEXT I:PRINT CF;
13390 FOR I=10 TO 18 STEP 3:PRINT USING "###";CP(I);CP(I+1);CP(I+2);
13400 PRINT SPC(1):NEXT I:PRINT CB:PRINT
13410 IF YT=2 THEN 13450 ELSE COLOR 0,15,0:PRINT "low scores ";:COLOR 7,0,0
13420 FOR I=1 TO 9 STEP 3:PRINT TX(I);TX(I+1);TX(I+2);SPC(1);:NEXT I:PRINT AF;
13430 FOR I=10 TO 18 STEP 3:PRINT USING "###";TX(I);TX(I+1);TX(I+2);
13440 PRINT SPC(1):NEXT I:PRINT AB
13450 IF YT=1 THEN 13500 ELSE PRINT:COLOR 0,15,0:PRINT "low putts ";:COLOR 7,0,0
13460 FOR I=1 TO 9 STEP 3:PRINT IX(I);IX(I+1);IX(I+2);SPC(1);:NEXT I
13470 PRINT USING" ## ";PF;
13480 FOR I=10 TO 18 STEP 3:PRINT USING "###";IX(I);IX(I+1);IX(I+2);
13490 PRINT SPC(1);:NEXT I:PRINT USING" ##";PB
13500 PRINT:PRINT SPC(12)"Best low scores at: ";B2$
13510 IF YT<>2 THEN PRINT SPC(12):PRINT USING" ### full rounds.";E5
13520 IF YT<>1 THEN PRINT SPC(12):PRINT USING" ### putting rounds.";J5
13530 LOCATE CSRLIN+1,15:COLOR 0,15,0
13540 IF YT<>2 THEN PRINT" Low score total is ";AF+AB
13550 LOCATE CSRLIN+1,15:IF YT<>1 THEN PRINT" Low putt total is ";PF+PB
13580 COLOR 7,0,0:RETURN
13590 '+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
13600 'PLOT TRENDS Subroutine
13610 'ENTER M1$=title, TMP(i)=scores<=20 to be plotted or zero's
13620 ' Max range of scores is 20 strokes(low to high)
13630 '+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
13640 N=1:FOR I=1 TO 20:TX(I)=0
13642 IF T=1 THEN T1(I)=CVI(MID$(F5$,N,2))
13643 IF T=2 THEN T1(I)=CVI(MID$(K5$,N,2))
13645 N=N+2:NEXT I
13648 FOR I=1 TO 20:IF T1(I)<>0 THEN 13655
13650 NEXT I:I=1
13655 K=1:FOR J=I TO 20:TX(K)=T1(J):K=K+1:NEXT J
13712 L=999:H=0:FOR I=1 TO 20
13714 IF TX(I)=0 THEN 13722
13716 IF TX(I)>H THEN H=TX(I)
13718 IF TX(I)<L THEN L=TX(I)
13720 NEXT I
13722 M=L:N=I-1:D2=(H-L+1):IF D2<=20 THEN 13728 'limit test
13724 H=L+19:FOR I=1 TO N:IF TX(I)>H THEN TX(I)=H
13726 NEXT I:D2=20
13728 D1=(20-D2)/2:WIDTH 80:SCREEN 2
13740 LOCATE 1,16:PRINT M1$;:PRINT" Trend Chart for ";B4$
13750 PRINT SPC(18)"For the last ";N;" rounds. ";GREG$
13752 PRINT SPC(22) B2$
13760 D$=CHR$(46)+" ":G$=CHR$(124)
13770 '+++++ print horiz lines and scores
13780 K=4:X=23:Y=4:FOR I=X TO Y STEP -1
13790 IF I<=X-D1 AND I>X-D1-D2 THEN LOCATE I,K:PRINT USING"### ";M;:M=M+1
13800 LOCATE I,K+5:FOR J=1 TO 20:PRINT D$;
13810 NEXT J:NEXT I
13820 '+++++ print round #
13830 LOCATE X+1-D1,K+4:FOR I=1 TO N:PRINT USING"## ";I;:NEXT I
13840 '+++++ draw lines
13850 H=K+5:H0=H*8-4
13860 V=X-D1:V0=(V-(TX(1)-L))*8-4
13870 FOR I=1 TO N
13880 M=TX(I)-L
13915 LOCATE V-M,H:PRINT "*"
13920 H=H+3:FOR Z=1 TO 50:NEXT Z
13930 NEXT I
13940 FOR I=Y TO X:LOCATE I,K+3:PRINT G$:LOCATE I,K+64:PRINT G$:NEXT
13950 LOCATE 25,16,0:PRINT"PRESS the space bar to continue.";
13960 KB$=INKEY$:IF KB$<>"" THEN 13960
13970 KB$=INKEY$:IF KB$<>" " THEN 13970
13980 LOCATE CSRLIN,POS(0),1:SCREEN 0:RETURN
13990 '+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
14000 '+++++ GRUNT WORK
14010 DELETE 490-9999
14020 SAVE"b:perform.asc",A
14030 RUN"b:main.bas"
15000 'for chain delete
000 '+++++ GRUNT WORK
14010 DELETE 490-9999
14020 SAVE"b:perform.asc",A
14030 RUN"b:main.bas"
15000 'for chain dele